package com.ruoyi.system.service;


import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.system.domain.BdmOrderPhysicalDistributionVo;
import com.ruoyi.system.domain.dto.BdmOrdersUploadDataDto;
import com.ruoyi.system.domain.dto.BdmOrdersUploadDto;
import com.ruoyi.system.domain.vo.BdmUserVo;

import java.util.List;
import java.util.Map;

/**
 * 分销逻辑服务类
 */
public interface IDistributionService {

    /**
     * 购买vip
     *
     * @param userId
     * @param orderId
     * @param productId
     */
    void vipAward(Long userId, String orderId, Long productId);

    /**
     * 购买代理礼包
     *
     * @param userId
     * @param orderId
     * @param productId
     */
    void agencyAward(Long userId, String orderId, Long productId);

    /**
     * 查找满足业绩要求的1 2号位
     */
    void setLocation();

    /**
     * 奖金池分红
     */
    void shareOutBonus();

    /**
     * 上传订单信息到erp
     * @param uploadDtos
     * @return
     */
    BdmOrdersUploadDataDto logistics(List<BdmOrdersUploadDto> uploadDtos);

    /**
     * 取消订单
     */
    void cancelOrder(List<String> ids);

    /**
     * 发货查询
     */
    void shipmentsQuery();

    /**
     * 获取订单物流轨迹
     * @return
     */
    List<BdmOrderPhysicalDistributionVo>getOrderPhysicalDistribution(Map<String,String> map);

    /**
     * 更新token
     */
    void refreshToken();

    /**
     * 第三方 退款
     */
    JSONObject polymerizationPay(String amount, String transactionId);
    /**
     * 查找直属上级,如果是vip查看是否符合升级条件
     *
     * @param upUserId 购买者上级用户id
     * @param level    会员等级
     * @param flag     vip 代理商标识
     */
     void whetherUpgrade(Long upUserId, Long level, int flag,Long userId);

    /**
     * 查询用户信息
     *
     * @param userId
     * @return
     */
     BdmUserVo getBdmUser(Long userId);
}
